#include "split.hpp"
#include "cstring"

void split_string(const char *str, char data[][20], int *count)
{
    const char *start = str;
    const char *end;
    int i = 0;
    while (*start && i < 24)
    {
        end = strchr(start, ','); // 查找下一个逗号
        // 如果找到逗号
        if (end)
        {
            int length = end - start;        // 计算当前字段长度
            strncpy(data[i], start, length); // 复制字段
            data[i][length] = '\0';          // 添加字符串结束符
            start = end + 1;                 // 跳过逗号
        }
        else
        {
            // 处理最后一个字段，使用 * 作为分隔符
            end = strchr(start, '*'); // 查找 *
            if (end)
            {
                int length = end - start;        // 复制到 *
                strncpy(data[i], start, length); // 复制字段
                data[i][length] = '\0';          // 添加字符串结束符
                // 处理 * 后的剩余部分
                start = end + 1;             // 跳过 *
                i++;                         // 移动到下一个字段
                strncpy(data[i], start, 19); // 复制剩余部分
                data[i][19] = '\0';          // 添加字符串结束符
            }
            else
            {
                // 如果没有找到 *，复制剩余部分
                strncpy(data[i], start, 19); // 复制最后部分（限制长度）
                data[i][19] = '\0';          // 添加字符串结束符
            }
            break;
        }
        i++;
    }
    *count = i + 1; // 计数包括最后一个字段
}